package com.aw.jsr303.ejemplo001;

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * User: gmc
 * Date: 29/06/2010
 */
public class ClasePrincipal {
    public static void main(String[] args) {
        ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
        Validator validator = validatorFactory.getValidator();
        ComprobanteDePago comprobante = new ComprobanteDePago();
        comprobante.setFechaDeEntrega(new Date());
        comprobante.setTipo(ComprobanteTipo.BOLETA);
        comprobante.setCliente(new Cliente());
        List<Item> items = new ArrayList();
        items.add(new Item());
        items.add(new Item());
        comprobante.setItems(items);
        Set<ConstraintViolation<ComprobanteDePago>> errorsProperty =  validator.validateProperty(comprobante,"fechaDeEntrega");
        System.out.println("Errores del atributo <fechaDeEntrega>:"+ errorsProperty);
        Set<ConstraintViolation<ComprobanteDePago>> errorsPropertyValue =  validator.validateValue(ComprobanteDePago.class,"fechaDeEntrega",new Date());
        System.out.println("Errores del valor que se quiere setear al atributo <fechaDeEntrega>:"+ errorsPropertyValue);
        Set<ConstraintViolation<ComprobanteDePago>> errors =  validator.validate(comprobante);
        System.out.println("Errores:"+ errors);

        Item item  = new Item();
        Set<ConstraintViolation<Item>> itemErrors = validator.validate(item);
        System.out.println("Errores de item:"+ itemErrors);

    }
}
